An accumulating error between the command and encoder position must be due to noise in one of two places. Either the step/dir drive is miss counting the number of step/dir pulses that KFlop is generating, or the encoder signals counted by the drive and KFlop are counted differently. If you change to Step/Dir CL (closed loop) mode, then KFlop will generate extra pulses to keep driving the motor until the encoder matches the commanded destination, but I wouldn't recommend it. It would be better to fix the root cause than try to compensate for it. The g320 is already closing the loop.
If you use an external probe or gauge you should be able to determine if KFlop is counting encoder pulses without loss.
KMotionCNC and Mach3 will operate the same in this regard.
There is no provision for slowing down for tight spots. A servo will increase up to peak torque to attempt to follow the planned trajectory, if unable it will trip at the following error limit.
TK